<?php
// +----------------------------------------------------------------------
// | HisiPHP框架[基于ThinkPHP5.1开发]
// +----------------------------------------------------------------------
// | Copyright (c) 2016-2021 http://www.HisiPHP.com
// +----------------------------------------------------------------------
// | HisiPHP承诺基础框架永久免费开源，您可用于学习和商用，但必须保留软件版权信息。
// +----------------------------------------------------------------------
// | Author: 橘子俊 <364666827@qq.com>，开发者QQ群：50304283
// +----------------------------------------------------------------------

namespace app\common\service;

use app\common\service\Base;
use think\facade\Cache;

class User extends Base
{

	/**
	 * 获取键值对缓存
	 *
	 * @author KING
	 * @date 2020年6月9日
	 *
	 * @return array
	 */
	public function getKVCache($status=1) {
		if ($status===null) $data = cache(KV_USER_ALL);
		else $data = cache(KV_USER);
		if(!$data) {
			$this->updateKVCache();
			if ($status===null) $data = cache(KV_USER_ALL);
			else $data = cache(KV_USER);
		} else return $data;
		return $data;
	}

	/**
	 * 更新键值对缓存
	 *
	 * @author KING
	 * @date 2020年6月9日
	 *
	 */
	public function updateKVCache() {
		$list = $this->getKVList(null);
		cache(KV_USER_ALL, $list);
		$list = $this->getKVList(1);
		cache(KV_USER, $list);
		return $list;
	}

	/**
	 * 获取键值对列表
	 *
	 * @author KING
	 * @date 2020年6月9日
	 *
	 * @param integer $status
	 * @return array
	 */
	public function getKVList($status=1) {
		$where = [];
		if ($status !== null) {
			$where[] = ['status', '=', $status];
		}
		$order = "id desc";
        return db('user')->where($where)->order($order)->column('name','id');
	}
        /**
	 * 获取值键对列表
	 *
	 * @author 飞燕
	 * @date 2020年9月8日
	 *
	 * @param integer $status
	 * @return array
	 */
	public function getVKList($status=1) {
		$where = [];
		if ($status !== null) {
			$where[] = ['status', '=', $status];
		}
		$order = "id desc";
        return db('user')->where($where)->order($order)->column('id','name');
	}

	   /**
	 * 获取userId
	 *
	 * @author KING
	 * @date 2020年9月25日
	 *
	 * @param integer $userId
	 * @return integar
	 */
	public function getRoleIdByUserId($userId) {
		if (empty($userId)) return 0;
		return db('system_user_role')->where('user_id', $userId)->value('role_id', 0);
	}
	 /**
	 * 获取个人权限ID集
	 *
	 * @author 飞燕
	 * @date 2020年9月26日
	 *
	 * @param integer $userId 
	 * @return integar
	 */
	public function getUserPrivateAuth($userId) {
		if (empty($userId)) return 0;
		$auths   = db('system_user')->where('id', 'in', $userId)->field('private_auth,id')->find();		
		if($auths['private_auth']!=null){			
			$auths['private_auth']=json_decode($auths['private_auth'], true);
		}else{
			$auths['private_auth']  = [''];
		}
		return $auths;
	}
}